perm filename DRAWS.F4[CMS,LCS]1 blob sn#100908 filedate 1974-05-08 generic text, type T, neo UTF8
00100		DIMENSION II(1000),JJ(1000),KK(1000),LL(1000),KP(5),NN(4000)
00200		1,A(500),B(500),IB(500)
00300		COMMON KP,NP,NN,JF
00400		IMP(I)=IABS(NN(I)/100000000)
00500	1	JE=0
00600		MN=0
00700		IP=-1
00800		MO=0
00900		NZ=10
01000		IM=0
01100		JF=0
01200		IS=-1
01300		NF=1
01400		CALL DPYCLR
01500		CALL TYPLOC(-350,-511)
01600		DO 407 I=1,4
01700	407	KP(I)='     '
01800		CALL DPYSET(4,LL,1000)
01900		CALL DPYSET(3,KK,1000)
02000		CALL DPYSET(2,JJ,1000)
02100		CALL DPYSET(1,II,1000)
02200		MN=0
02300	2	TYPE 5
02400	5	FORMAT(' TYPE:<CR>;TO DRAW NEW PICTURE.'/
02500		1' OR TYPE IN NAME TO USE OLD PICTURE.'/)
02600		ACCEPT 3,NAM
02700	3	FORMAT(A5)
02800		IF(NAM.EQ.'     ')GO TO 140
02900	   	IF(.NOT.LOOKD(NAM))GO TO 2
03000	515	CALL IFILE(1,NAM)
03100		READ(1)LE,(NN(K),K=MN+1,MN+LE)
03200		MN=MN+LE
03300		IP=-1
03400		IF(MO.NE.'P')GO TO 517
03500		MO=100000000
03600		DO 518 K=MN-LE+1,MN
03700		MP=1
03800		IF(NN(K))MP=-1
03900		NN(K)=IABS(NN(K))
04000	518	NN(K)=MP*(NP*MO+(MOD(NN(K),MO)))
04100		GO TO 503
04200	517	DO 388 K=1,MN
04300		NP=MOD(IMP(K),10)
04400		CALL SETPOG(NP)
04500		CALL INXY(NX,NY,K)
04600		MP=1
04700		IF(NN(K))MP=-1
04800	388	CALL IPEN(NX,NY,MP,NZ)
04900	   	DO 193 I=1,4
05000		KP(I)='VIS  '
05100	193	CALL DPYOUT(I)
05200		CALL SETPOG(1)
05300	140	NP=1
05400		CALL IPOG(NZ)
05500	
05600	211	NS=0
05700	120	LV=0
05800	144	CALL SETCUR(NX,NY,LV)
05900		IF(NS)TYPE 6
06000	6	FORMAT(' :'$)
06100		IF(JF.GT.0)TYPE 634
06200	634	FORMAT(' O'$)
06300		ACCEPT 103,M,N
06400	103	FORMAT(2A1)
06500		LX=NX
06600		LY=NY
06700		CALL RDCUR(NX,NY)
06800		IF(NC)GO TO 191
06900		IF(M.NE.' ')GO TO 11
07000	308	IF(LV.NE.0)GO TO 192
07100	301	CALL IPAK(NX,NY,MN,1,NZ)
07200		LV=1
07300		GO TO 144
07400	192 	CALL IPAK(NX,NY,MN,-1,NZ)
07500	341	N=NP
07600	278	CALL DPYOUT(N)
07700		KP(N)='VIS  '
07800	360	IF(IP)CALL IPOG(NZ)
07900	260	IF(NS)GO TO 144
08000		GO TO 120
08100	
08200	11	IF(M.EQ.':')GO TO 261
08300		IF(M.EQ.'.')GO TO 303
08400		IF(M.EQ.'W')GO TO 380
08500	  	IF(M.EQ.'H')GO TO 306
08600		IF(M.EQ.'V')GO TO 307
08700		IF(M.EQ.'B')GO TO 105
08800	  	IF(M.EQ.'C')GO TO 150
08900		IF(M.EQ.'+')GO TO 500
09000		IF(M.EQ.'-')GO TO 501
09100		IF(M.EQ.'*')GO TO 502
09200		IF(M.EQ.'J')GO TO 608
09300		IF(M.EQ.'O')GO TO 630
09400		IF(M.EQ.'A')GO TO 510
09500		IF(M.EQ.'E')GO TO 425
09600		IF(M.EQ.'(')GO TO 431
09700		IF(M.EQ.')')GO TO 432
09800	  	IF(M.EQ.'I'.OR.M.EQ.'S')GO TO 230
09900		IF(M.EQ.'X')GO TO 104
10000		IF(M.EQ.'Z')GO TO 580
10100		IF(M.EQ.'F')GO TO 601
10200		IF(M.NE.'P')GO TO 260
10300		IP=-1
10400		IF(N.EQ.'I')GO TO 258
10500		IF(N.EQ.'D')GO TO 340
10600		IF(N.NE.' ')GO TO 231
10700	259	NP=NP+1
10800		IF(NP.GT.4)NP=1
10900	251	CALL SETPOG(NP)
11000		GO TO 503
11100	630	IF(JF.GT.0)GO TO 701
11200		REREAD 710,M,JF
11300	710	FORMAT(A1,I2)
11400		IF(JF.LT.1.OR.JF.GT.19.OR.JF.EQ.10)JF=1
11500		GO TO 261
11600	701	JF=0
11700		GO TO 211
11800	303	IF(LV.EQ.0)GO TO 301
11900		CALL IPAK(NX,NY,MN,-1,NZ)
12000	333	KP(NP)='VIS  '
12100		IF(IP)CALL IPOG(NZ)
12200		CALL DPYOUT(NP)
12300		NX=LX
12400		NY=LY
12500		IF(.NOT.NC)GO TO 301
12600		NC=0
12700		GO TO 211
12800	601	IT=0
12900	702	IT=IT+1
13000		IF(IT.GT.19)GO TO 708
13100		IF(IT.EQ.10)IT=11
13200		I=0
13300		K=0
13400	602	I=I+1
13500		IF(I.GT.MN)GO TO 660
13600	606	IF(MOD(IMP(I),10).NE.NP)GO TO 602
13700		IF(IMP(I)/10.NE.IT)GO TO 602
13800		K=K+1
13900		CALL INXY(N,M,I)
14000		IF(IT.GT.10)CALL INXY(M,N,I)
14100		A(K)=N*NZ/10
14200		B(K)=M*NZ/10
14300		IB(K)=3
14400		IF(NN(I))IB(K)=2
14500		I=I+1
14600		IF(I.LE.MN)GO TO 606
14700	660	IF(K.LT.3)GO TO 702
14800		IB(1)=K
14900		JI=IT
15000		IF(IT.GT.10)JI=IT-10
15100		IF(IS)JI=JI+5
15200		CALL FILLER(A,B,IB,JI,IS,IT)
15300		GO TO 702
15400	708	IF(IS)GO TO 341
15500		GO TO 689
15600	608	NV=-1
15700		IF(LV.EQ.0)NV=1
15800		CALL IPAK(JX,JY,MN,NV,NZ)
15900		NX=JX
16000		NY=JY
16100		GO TO 341
16200	306	NY=LY
16300		GO TO 308
16400	307	NX=LX
16500		GO TO 308
16600	230	IF(N.EQ.' ')GO TO 258
16700	231	IF(N.LT.'1'.OR.N.GT.'4')GO TO 255
16800		REREAD 408,M,N
16900	408	FORMAT(A1,I1)
17000		IF(M.EQ.'S')GO TO 278
17100	   	IF(M.NE.'I')GO TO 256
17200	257	KP(N)='     '
17300		CALL HYDPOG(N)
17400		IF(M.EQ.'P')GO TO 259
17500		GO TO 360
17600	255	IF(M.EQ.'P')GO TO 259
17700	258	IF(M.EQ.'S')GO TO 341
17800		N=NP
17900		GO TO 257
18000	256	NP=N
18100		GO TO 251
18200	261	IF(NS)GO TO 211
18300		NS=-1
18400		IF(LV.EQ.1)GO TO 666
18500		JX=NX
18600		JY=NY
18700		GO TO 301
18800	666	JX=LX
18900		JY=LY
19000		GO TO 192
19100	580	IF(IP)GO TO 581
19200		IP=-1
19300		GO TO 360
19400	581	IP=0
19500		N=5
19600		GO TO 257
19700	500	IF(NZ.EQ.20)GO TO 503
19800		NZ=NZ+1
19900		GO TO 503
20000	501	IF(NZ.EQ.5)GO TO 503
20100		NZ=NZ-1
20200		GO TO 503
20300	502	IF(NZ.EQ.10)GO TO 503
20400		NZ=10
20500	503	CALL CLRPOG(NP)
20600		CALL IDRA(MN,NZ)
20700		GO TO 335
20800	510	REREAD 516,MO,NAM
20900	516	FORMAT(1XA1,A5)
21000		IF(.NOT.LOOKD(NAM))GO TO 260
21100		GO TO 515
21200	340	CALL CLRPOG(NP)
21300		J=0
21400	400	J=J+1
21500	507	IF(J.GT.MN)GO TO 466
21600		MP=MOD(IMP(J),10)
21700		IF(MP.NE.NP)GO TO 400
21800		DO 401 I=J,MN-1
21900	401	NN(I)=NN(I+1)
22000		MN=MN-1
22100		GO TO 507
22200	466	IF(JE)GO TO 467
22300		IP=-1
22400		GO TO 431
22500	105	LP=MOD(IMP(MN),10)
22600		IF(MN.LT.1.OR.LP.NE.NP)GO TO 335
22700		IF(NP.EQ.1)II(2)=II(2)-1
22800		IF(NP.EQ.2)JJ(2)=JJ(2)-1
22900		IF(NP.EQ.3)KK(2)=KK(2)-1
23000		IF(NP.EQ.4)LL(2)=LL(2)-1
23100	        CALL ACCPOG(NP)
23200		MN=MN-1
23300	335	NS=0
23400		GO TO 341
23500	150	NC=-1
23600		IF(LV.NE.1)GO TO 301
23700	191	R=0
23800		MN=MN-1
23900		RM=(NX-LX)**2+(NY-LY)**2
24000		RM=SQRT(RM)
24100		KX=LX+RM*SIND(R)
24200		KY=LY+RM*COSD(R)
24300		CALL IPAK(KX,KY,MN,1,NZ)
24400		DO 151 K=6,360,6
24500		R=K
24600		KX=LX+RM*SIND(R)
24700		KY=LY+RM*COSD(R)
24800	151	CALL IPAK(KX,KY,MN,-1,NZ)
24900		GO TO 333
25000	380	IF(LV.NE.1)GO TO 103
25100		REREAD 377,M,N
25200	377	FORMAT(A1,I2)
25300		IF(N.LT.4)N=100
25400		KN=N/10
25500		IF(KN.LT.2)KN=2
25600		DO 381 I=0,N,KN
25700		CALL IPAK(LX-N/2+I,LY-N/2+I,MN,1,NZ)
25800	381	CALL IPAK(NX-N/2+I,NY-N/2+I,MN,-1,NZ)
25900		GO TO 341
26000	425	I=0
26100	426	I=I+1
26200		IF(I.GT.MN)GO TO 211
26300	430	IF(MOD(IMP(I),10).NE.NP)GO TO 426
26400	548	CALL INXY(NX,NY,I)
26500		CALL SETCUR(NX*NZ/10,NY*NZ/10,1)
26600		TYPE 469
26700	469	FORMAT(' ERASE?'$)
26800		ACCEPT 103,M,N
26900		IF(M.EQ.' ')GO TO 426
27000		IF(M.EQ.'Y')GO TO 470
27100		IF(M.EQ.'I')GO TO 547
27200		IF(M.NE.'B')GO TO 211
27300	549	I=I-1
27400		IF(I.LT.1)GO TO 211
27500		IF(MOD(IMP(I),10).NE.NP)GO TO 549
27600		GO TO 548
27700	547	NN(I)=IABS(NN(I))
27800		GO TO 471
27900	470	MN=MN-1
28000		DO 428 K=I,MN
28100	428	NN(K)=NN(K+1)
28200	471	CALL CLRPOG(NP)
28300		CALL IDRA(MN,NZ)
28400		CALL DPYOUT(NP)
28500		GO TO 430
28600	431	NX=0
28700		NY=0
28800		NF=MN+1
28900		IM=0
29000		GO TO 211
29100	432	IF(IM.EQ.0)IM=MN
29200		DO 433 I=NF,IM
29300		CALL INXY(IX,IY,I)
29400		IX=NX+IX
29500		IY=NY+IY
29600		MP=1
29700		IF(NN(I))MP=-1
29800	433	CALL IPAK(IX,IY,MN,MP,NZ)
29900		GO TO 341
30000	
30100	104	CALL CLRCUR
30200		CALL IPOG(NZ)
30300		IP=-1
30400	   	TYPE 111
30500	111	FORMAT(' TYPE:<CR>;TO CONTINUE.'/' TYPE:''N''<CR>;TO START OVER.'/
30600		2' TYPE:''X'' TO SAVE VIS POGS IF FINISHED'/
30700		3' OR TYPE:''P'' TO PLOT ALL VIS POGS'/)
30800		ACCEPT 103,M,NV
30900		IF(M.EQ.'N')GO TO 1
31000		IF(M.EQ.'P')GO TO 557
31100		IF(M.NE.'X')GO TO 120
31200	127	TYPE 121
31300	121	FORMAT(' TYPE A FIVE LETTER NAME FOR THIS PICTURE.'/)
31400		ACCEPT 3,NAM
31500		IF(NAM.EQ.'     ')GO TO 127
31600	557	MP=0
31700		DO 405 IK=1,4
31800		IF(KP(IK).NE.'VIS  ')GO TO 405
31900		MP=MP+1
32000	405	CONTINUE
32100		IF(MP.EQ.0)GO TO 104
32200		IF(M.EQ.'P')GO TO 555
32300		NP=0
32400		JE=-1
32500	467	NP=NP+1
32600		IF(NP.GT.4)GO TO 468
32700		IF(KP(NP).NE.'VIS  ')GO TO 340
32800		GO TO 467
32900	468	CALL OFILE(1,NAM)
33000		WRITE(1)MN,(NN(K),K=1,MN)
33100		END FILE 1
33200		GO TO 1
33300	555	TYPE 587
33400	587	FORMAT(/' PLOTING CURRENT POG'/)
33500		CALL PLOTS(I)
33600		IS=0
33700		GO TO 601
33800	689	IF(NV.EQ.'L')GO TO 711
33900		DO 556 I=1,MN
34000		IF(MOD(IMP(I),10).NE.NP)GO TO 556
34100		CALL INXY(NX,NY,I)
34200		MO=3
34300		IF(NN(I))MO=2
34400		CALL PLOT(NX*NZ/10,NY*NZ/10,MO)
34500	556	CONTINUE
34600	711	CALL PLOT(0,0,3)
34700		TYPE 691
34800	691	FORMAT(' FINISHED PLOTING!'/)
34900		IS=-1
35000		GO TO 211
35100		END
35200	
35300		SUBROUTINE IPOG(NZ)
35400		COMMON KP(5),NP,NN(4000),JF
35500		DIMENSION MM(30),JP(4)
35600		CALL DPYSET(5,MM,30)
35700		CALL DPYTXT(100,-430,'POG1 POG2 POG3 POG4 ZOOM ',5)
35800		KP(5)=' REG '
35900		IF(NZ.LT.10)KP(5)=' --- '
36000		IF(NZ.GT.10)KP(5)=' +++ '
36100		CALL DPYTXT(100,-450,KP,5)
36200		DO 4 J=1,4
36300		JP(J)='     '
36400	4	IF(J.EQ.NP)JP(J)=' ↑↑  '
36500		CALL DPYTXT(100,-470,JP,4)
36600		CALL DPYOUT(5)
36700		CALL SETPOG(NP)
36800		RETURN
36900		END
37000		SUBROUTINE IPAK(NX,NY,MN,MP,NZ)
37100		COMMON KP(5),NP,NN(4000),JF
37200		MN=MN+1
37300		IX=(NX*10/NZ)+1024
37400		IY=(NY*10/NZ)+1024
37500		NN(MN)=MP*((JF*10+NP)*100000000+IX*10000+IY)
37600		CALL IPEN(NX,NY,MP,10)
37700		RETURN
37800		END
37900		SUBROUTINE IPEN(NX,NY,MP,NZ)
38000		IX=NX*NZ/10
38100		IF(IX.GT.950)IX=950
38200		IF(IX.LT.-950)IX=-950
38300		IY=NY*NZ/10
38400		IF(IY.GT.950)IY=950
38500		IF(IY.LT.-950)IY=-950
38600		IF(MP)GO TO 1
38700		CALL AIVECT(IX,IY)
38800		RETURN
38900	1	CALL AVECT(IX,IY)
39000		RETURN
39100		END
39200		SUBROUTINE INXY(NX,NY,MN)
39300		COMMON KP(5),NP,NN(4000),JF
39400		J=IABS(NN(MN))
39500		NY=MOD(J,10000)-1024
39600		NX=(MOD(J,100000000)/10000)-1024
39700		RETURN
39800		END
39900		SUBROUTINE IDRA(MN,NZ)
40000		COMMON KP(5),NP,NN(4000),JF
40100		DO 1 I=1,MN
40200		KF=MOD(IABS(NN(I)/100000000),10)
40300		IF(KF.NE.NP)GO TO 1
40400		CALL INXY(IX,IY,I)
40500		CALL IPEN(IX,IY,NN(I),NZ)
40600	1	CONTINUE
40700		RETURN
40800		END